{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "from matplotlib import pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>log_date</th>\n",
       "      <th>app_name</th>\n",
       "      <th>user_id</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>2013-06-01</td>\n",
       "      <td>game-01</td>\n",
       "      <td>116</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>2013-06-01</td>\n",
       "      <td>game-01</td>\n",
       "      <td>13491</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>2013-06-01</td>\n",
       "      <td>game-01</td>\n",
       "      <td>7006</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>2013-06-01</td>\n",
       "      <td>game-01</td>\n",
       "      <td>117</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>2013-06-01</td>\n",
       "      <td>game-01</td>\n",
       "      <td>13492</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     log_date app_name  user_id\n",
       "0  2013-06-01  game-01      116\n",
       "1  2013-06-01  game-01    13491\n",
       "2  2013-06-01  game-01     7006\n",
       "3  2013-06-01  game-01      117\n",
       "4  2013-06-01  game-01    13492"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 读入 DAU（每天至少来访1次的用户）数据\n",
    "DAU_table = pd.read_csv('./data/section3-dau.csv')\n",
    "DAU_table.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>log_date</th>\n",
       "      <th>app_name</th>\n",
       "      <th>user_id</th>\n",
       "      <th>payment</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>2013-06-01</td>\n",
       "      <td>game-01</td>\n",
       "      <td>351</td>\n",
       "      <td>1333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>2013-06-01</td>\n",
       "      <td>game-01</td>\n",
       "      <td>12796</td>\n",
       "      <td>81</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>2013-06-01</td>\n",
       "      <td>game-01</td>\n",
       "      <td>364</td>\n",
       "      <td>571</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>2013-06-01</td>\n",
       "      <td>game-01</td>\n",
       "      <td>13212</td>\n",
       "      <td>648</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>2013-06-01</td>\n",
       "      <td>game-01</td>\n",
       "      <td>13212</td>\n",
       "      <td>1142</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     log_date app_name  user_id  payment\n",
       "0  2013-06-01  game-01      351     1333\n",
       "1  2013-06-01  game-01    12796       81\n",
       "2  2013-06-01  game-01      364      571\n",
       "3  2013-06-01  game-01    13212      648\n",
       "4  2013-06-01  game-01    13212     1142"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 读入 DPU（每天至少消费1日元的用户）数据\n",
    "DPU_table = pd.read_csv('./data/section3-dpu.csv')\n",
    "DPU_table.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>install_date</th>\n",
       "      <th>app_name</th>\n",
       "      <th>user_id</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>2013-04-15</td>\n",
       "      <td>game-01</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>2013-04-15</td>\n",
       "      <td>game-01</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>2013-04-15</td>\n",
       "      <td>game-01</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>2013-04-15</td>\n",
       "      <td>game-01</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>2013-04-15</td>\n",
       "      <td>game-01</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  install_date app_name  user_id\n",
       "0   2013-04-15  game-01        1\n",
       "1   2013-04-15  game-01        2\n",
       "2   2013-04-15  game-01        3\n",
       "3   2013-04-15  game-01        4\n",
       "4   2013-04-15  game-01        5"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 读入 Install（记录每个用户首次玩游戏的时间）数据\n",
    "Install_table = pd.read_csv('./data/section3-install.csv')\n",
    "Install_table.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>app_name</th>\n",
       "      <th>log_date</th>\n",
       "      <th>install_date</th>\n",
       "      <th>payment</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>game-01</td>\n",
       "      <td>2013-06-01</td>\n",
       "      <td>2013-04-15</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>game-01</td>\n",
       "      <td>2013-06-02</td>\n",
       "      <td>2013-04-15</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>game-01</td>\n",
       "      <td>2013-06-03</td>\n",
       "      <td>2013-04-15</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>game-01</td>\n",
       "      <td>2013-06-04</td>\n",
       "      <td>2013-04-15</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>game-01</td>\n",
       "      <td>2013-06-05</td>\n",
       "      <td>2013-04-15</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   user_id app_name    log_date install_date  payment\n",
       "0        1  game-01  2013-06-01   2013-04-15      NaN\n",
       "1        1  game-01  2013-06-02   2013-04-15      NaN\n",
       "2        1  game-01  2013-06-03   2013-04-15      NaN\n",
       "3        1  game-01  2013-06-04   2013-04-15      NaN\n",
       "4        1  game-01  2013-06-05   2013-04-15      NaN"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 合并 DAU 和 Install 以及 DPU\n",
    "merge_1 = pd.merge(DAU_table,Install_table,how='left',left_on='user_id',right_on='user_id',sort=True)\n",
    "merge_1 = merge_1.rename(columns = {'app_name_x': 'app_name'})\n",
    "merge_1 =merge_1[['user_id','app_name','log_date','install_date']]\n",
    "# merge_1.head()\n",
    "\n",
    "merge_2 = pd.merge(merge_1,DPU_table,how='left',left_on=['user_id','log_date'],right_on=['user_id','log_date'],sort=True)\n",
    "merge_2 = merge_2.rename(columns = {'app_name_x': 'app_name'})\n",
    "merge_2 = merge_2[['user_id','app_name','log_date','install_date','payment']]\n",
    "merge_2.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>app_name</th>\n",
       "      <th>log_date</th>\n",
       "      <th>install_date</th>\n",
       "      <th>payment</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>game-01</td>\n",
       "      <td>2013-06-01</td>\n",
       "      <td>2013-04-15</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>game-01</td>\n",
       "      <td>2013-06-02</td>\n",
       "      <td>2013-04-15</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>game-01</td>\n",
       "      <td>2013-06-03</td>\n",
       "      <td>2013-04-15</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>game-01</td>\n",
       "      <td>2013-06-04</td>\n",
       "      <td>2013-04-15</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>game-01</td>\n",
       "      <td>2013-06-05</td>\n",
       "      <td>2013-04-15</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   user_id app_name    log_date install_date  payment\n",
       "0        1  game-01  2013-06-01   2013-04-15      0.0\n",
       "1        1  game-01  2013-06-02   2013-04-15      0.0\n",
       "2        1  game-01  2013-06-03   2013-04-15      0.0\n",
       "3        1  game-01  2013-06-04   2013-04-15      0.0\n",
       "4        1  game-01  2013-06-05   2013-04-15      0.0"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 将未消费用户的消费额设置为0\n",
    "merge_2.fillna(0, inplace=True)\n",
    "merge_2.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>访问月份</th>\n",
       "      <th>首次使用月份</th>\n",
       "      <th>payment</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2013年06月</td>\n",
       "      <td>2013年04月</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>2013年07月</td>\n",
       "      <td>2013年04月</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2013年06月</td>\n",
       "      <td>2013年04月</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "      <td>2013年06月</td>\n",
       "      <td>2013年04月</td>\n",
       "      <td>14994.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>3</td>\n",
       "      <td>2013年07月</td>\n",
       "      <td>2013年04月</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   user_id      访问月份    首次使用月份  payment\n",
       "0        1  2013年06月  2013年04月      0.0\n",
       "1        1  2013年07月  2013年04月      0.0\n",
       "2        2  2013年06月  2013年04月      0.0\n",
       "3        3  2013年06月  2013年04月  14994.0\n",
       "4        3  2013年07月  2013年04月      0.0"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 按月统计\n",
    "merge_2['访问月份'] = merge_2['log_date'].map(lambda x: x.split('-')[0] + '年' + x.split('-')[1].split('-')[0] + '月')\n",
    "merge_2['首次使用月份'] = merge_2['install_date'].map(lambda x: x.split('-')[0] + '年' + x.split('-')[1].split('-')[0] + '月')\n",
    "# merge_2.head()\n",
    "\n",
    "month_group = merge_2.groupby(['user_id','访问月份','首次使用月份'])['payment'].sum().reset_index()\n",
    "month_group.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>访问月份</th>\n",
       "      <th>首次使用月份</th>\n",
       "      <th>payment</th>\n",
       "      <th>用户分类</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2013年06月</td>\n",
       "      <td>2013年04月</td>\n",
       "      <td>0.0</td>\n",
       "      <td>已有用户</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>2013年07月</td>\n",
       "      <td>2013年04月</td>\n",
       "      <td>0.0</td>\n",
       "      <td>已有用户</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2013年06月</td>\n",
       "      <td>2013年04月</td>\n",
       "      <td>0.0</td>\n",
       "      <td>已有用户</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "      <td>2013年06月</td>\n",
       "      <td>2013年04月</td>\n",
       "      <td>14994.0</td>\n",
       "      <td>已有用户</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>3</td>\n",
       "      <td>2013年07月</td>\n",
       "      <td>2013年04月</td>\n",
       "      <td>0.0</td>\n",
       "      <td>已有用户</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   user_id      访问月份    首次使用月份  payment  用户分类\n",
       "0        1  2013年06月  2013年04月      0.0  已有用户\n",
       "1        1  2013年07月  2013年04月      0.0  已有用户\n",
       "2        2  2013年06月  2013年04月      0.0  已有用户\n",
       "3        3  2013年06月  2013年04月  14994.0  已有用户\n",
       "4        3  2013年07月  2013年04月      0.0  已有用户"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 按月统计的数据中区分新用户和已有用户\n",
    "month_group['用户分类'] = np.where(month_group['访问月份'] == month_group['首次使用月份'],'新用户','已有用户')\n",
    "month_group.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>payment</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>访问月份</th>\n",
       "      <th>用户分类</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td rowspan=\"2\" valign=\"top\">2013年06月</td>\n",
       "      <td>已有用户</td>\n",
       "      <td>177886.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>新用户</td>\n",
       "      <td>49837.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td rowspan=\"2\" valign=\"top\">2013年07月</td>\n",
       "      <td>已有用户</td>\n",
       "      <td>177886.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>新用户</td>\n",
       "      <td>29199.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                payment\n",
       "访问月份     用户分类          \n",
       "2013年06月 已有用户  177886.0\n",
       "         新用户    49837.0\n",
       "2013年07月 已有用户  177886.0\n",
       "         新用户    29199.0"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 统计不同月份的新用户 / 已有用户的消费额\n",
    "pivot = pd.pivot_table(month_group,index=['访问月份','用户分类'],values=['payment'],aggfunc=np.sum)\n",
    "pivot.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0xbe1bc49cc8>"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3gAAAIHCAYAAADNbf7uAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3de7SdVWHv/d/MzcRAADUHi4BgVBATFAiCEjCFwOASPW9TDpQKKZRLR8txgBx4paA0thaqiJVyLJC2CCX6phBACmhaAwRSNWAA9RQ43CQIwYCSBJoQSALz/SObbUJ2IJedvcPcn88Ye+y15nrWs+bKCHnGl+dWaq0BAADgra9fb08AAACA7iHwAAAAGiHwAAAAGiHwAAAAGiHwAAAAGjGgtyewvt71rnfVnXbaqbenAQAA0Cvuueee39Rah3f12lsu8HbaaafMmTOnt6cBAADQK0opT6ztNYdoAgAANELgAQAANELgAQAANOItdw4eAAC0bvny5Xnqqafy0ksv9fZU6EWDBw/O9ttvn4EDB67zewQeAABsZp566qlsueWW2WmnnVJK6e3p0AtqrXnuuefy1FNPZeedd17n9zlEEwAANjMvvfRS3vnOd4q7PqyUkne+853rvRdX4AEAwGZI3LEhfwcEHgAAQCMEHgAAQIdaa29PYaMIPAAAoNdcccUV2W233TJu3Lh86EMfyoc//OGMGzcue+21V04//fQu3zNr1qxceOGFb7jeK6+8MosXL8706dPzb//2b10u87nPfS5PP/10pk2blosuuiiLFy/OgQcemKVLl2709+otAg8AAOjS8ccfn3POOSdJMmnSpEyaNKnbP2PAgAE544wzMmPGjJx22mk566yzMmPGjFx00UVrvT3AXnvtlUceeWSt63ziiSdyySWXZOjQodljjz3yhS98YY2LlaxYsSJHHXVUzjnnnAwYMCD9+/fP3/zN3+Tcc8/NoEGD3rJ78twmAQAAWKt/+Id/yHnnnbfJ1l9KyYUXXpgpU6bk6aefTr9+/XLllVdm0aJFOfTQQzuXe/LJJ7Pnnntml1126RwbM2ZMkmTOnDlZsmRJ+vfvnyT57Gc/m/PPPz+llGy77bY59thj85nPfCZTp07NwIEDs2DBgkyYMCFDhw7N0qVL83u/93vZbbfdMnTo0Pz0pz/NV7/61Vx66aUZMWLEJvvem4rAAwAA1mrkyJH59re/nSR5+eWXc8wxx+Tpp5/O9ttvn29961s5//zzs3z58syaNSsvvPBCpk+fnmHDhmXixIl59tlnM2rUqHzzm99c6/pLKTnrrLNy0kkn5bLLLsvgwYNz/PHHZ+bMmZk+fXrncoMGDcpBBx2UqVOnrrGOESNGdMbd3/7t32brrbfOIYcc0vn6aaedlnnz5mW//fbLP/7jP2b33XfPzJkz8x//8R/56le/mvPOOy9bbbVVHn/88SxatCh//dd/nR133LG7/gh7lEM0AQCAtTr11FNz+eWXJ1m5N2/kyJG544478oEPfCBXXHFFkuTRRx/NnXfemQkTJuS2227L5MmTM3LkyNx555351a9+lZ///OdrXf+KFSvWaR6llNx6660ZM2bMGj/z589PsvLQzNtuuy3Dhw/PyJEjs+2222bffffN3nvvndtvvz2nnnpqlixZ0vm97rrrrkydOjWf+MQnsnTp0lxyySX5n//zf75hkG7u7MEDAADW6t3vfnd23XXXzJw5M0cddVT22WefJMm+++6b73//+9lmm20yceLEJMmOO+6YZcuW5aGHHsqPfvSjzJw5M4sWLcq8efOy++67d7n+JUuW5NJLL83UqVMzb9689OvXL1OmTMnChQtz8MEHdy63aNGiHH744bnqqqvWWMeoUaPy6quv5r3vfW9uuummJCvP03v00Udz3nnn5YknnsgZZ5yRP/qjP0qS3H///XnwwQczd+7c3H777Zk/f34WLlyYH//4x0mSpUuX5nvf+14OP/zw7vuD7CECDwAAeEOf+9znsueee+b+++/Pdtttl3HjxmX27Nn58Ic/nKeffjpDhw5dbflddtklH/vYx3LCCSfk5ptvfsPDHR944IFcfvnl2W+//d7wEM377rsvo0aN6nIdd999d/r1W/3gxGnTpuXzn/98kuTpp5/ODjvs0Pnahz/84dx2221JVh52euihh2bHHXfM//pf/yv77bff+v3hbGYcogkAALyhPfbYI5/85Cdz0kkn5f77788BBxyQRx55JMcff3yXy5988sn5/ve/nwMOOCCXXXZZdthhh8ybN2+N2x7UWjN79uzssccenc9fu3rlihUrOs+rS5Jrr702n/70p7v8vCFDhqz2/O/+7u8yYMCAzr2NDz/88GqBlyQvvfRSbrzxxhxxxBE577zz8u1vfzuTJ0/Oaaedlv/8z/9c9z+czYw9eAAAQJeuvPLKzsczZ87scplVb52wavBdc801qy03dOjQ7LzzzquN3X777dl7773z9re/PUkybNiwDBw4MA8//HDOPPPMXHzxxUmSm266KcuXL88HP/jBN5xvrTUTJkzIO9/5zkyZMiVJ8qUvfSk/+MEP8s///M+dy/3mN7/J0UcfnUMOOSTTpk3L1ltvnSS56qqr8oMf/CDnnHNOvvrVr2bXXXd9w8/bHJW32v0dRo8eXefMmdPb0wAAgE3mwQcfzIc+9KHenka3euWVV7J8+fIMHjx4tfFly5Zl0KBBb/je559/PosXL8573vOeN/2cJUuWrHHI6FtZV38XSin31FpHd7W8PXh0uz33+fvengK8pd1715/19hQAoNv1799/tUMuX/NmcZckW221Vbbaaqt1+pyW4m5DOAcPAACgEQIPAACgEQIPAAB4Q3Pnzu3tKfSo3/zmNz3yOb/4xS+6fZ3OwQMAgM3cd8ou3bq+P6wPrfOyX/nKV/KBD3wgO+20U7fOoafsu+++6d+/fwYOHLja+Msvv5zJkyd3eW+9ww8/PNOmTevy/n1XXHFFvva1r2W77bbrvDH77/zO72ThwoXZf//9841vfGON98yaNSuzZ8/OWWedtdr4TTfdlOHDh+cP//APN/Jb/pbAAwAAujR37tw8+eSTnTcM7y0//elPkyQf/ehH1/u9s2fP7nL8+OOPz8svv9z5fL/99suWW26Zl19+OQ899FBOOeWUzteWLVuWk08+Occcc0wGDBiQM844IyeddNIaN2a/5ZZbuvysvfbaK1dfffUa46eddlo+85nP5FOf+lS23HLL9f5uXRF4AABAl66++uqceuqpvT2NjQq8559/PoMHD87b3va2N1zuhz/8YZLkT/7kT3LyySevda9aKSUXXnhhpkyZkqeffjr9+vXLlVdemUWLFuXQQw/tXO7JJ5/MnnvumV12+e3e1zFjxiRJ5syZkyVLlqR///459thj893vfjfHHXfcen+3rgg8AACgS4899ljnPdgmTZqUu+66Ky+++GKGDx+eqVOnppSS4447Lk888UTe9a53Zdq0aZkyZUqeeeaZnH322bnyyiszf/78TJ8+Pdttt12eeeaZJMnHPvaxfPGLX8zEiRPz7LPPZtSoUfnmN7+ZSZMmZfny5Zk1a1ZeeOGFTJ8+PRdffHFuuOGGJCuD89Zbb12v73DWWWflv//3/54jjjhijddef0/wG264ITfccEMee+yxXHHFFUlWBuInPvGJzpuul1Jy1llndbkHb/r06Z3rGjRoUA466KBMnTp1jc8dMWJE5y0j9t133/zVX/2VwAMAAHrW/vvvn3POOSennnpqbrzxxuy///454ogjcvTRR+eEE07IvffemyOPPDIHH3xwzj777EybNi2XXXZZpk+fnvPPPz+HHHJI7r333nzqU5/K5MmTM3LkyEyaNCkTJkzIz3/+8yTJo48+mjvvvDN/+Zd/mdtuuy0XXHBB516w448/fr3nPGjQoHzhC1/IhRdeuNr4lltuudq99W688cacffbZ2WmnnXL66ad3jj/wwAOdYZokK1asWKfPLaXk1ltv7dxrt6r58+d3Ph4yZEiWLl26zt/nzQg8AACgS0OGDMnixYuzxRZbJFl5LlmS7L777pk7d24OPPDA3HzzzZk2bVqeffbZLF26NFtuuWVGjBiRO+64I6+++mq23377JMlOO+2U7bbbLltssUVqrXnooYfyox/9KDNnzsyiRYsyb968JMnEiROTJDvuuGOWLVvWLd/jkksu6TK0XjNnzpxMnjw51157bU455ZQMHjy487VBgwallNL5fMmSJbn00kszderUzousTJkyJQsXLszBBx/cudyiRYty+OGH56qrrlrj80aNGpVXX301/fr1y+OPP54ddtihW75n4jYJAADAWhx++OG57rrrOp/ffffdSZL77rsv73//+3P99ddn5MiRuf766/Oe97ync7mJEyfmhBNOyDHHHLPWde+yyy45/fTTM3PmzHz5y1/uvGLl0KFD11h2yJAhefHFF5OseVjlxrjmmmuyYMGCjB49OrfcckuGDRuWxx57LH/zN3/T+fPtb397tfc88MADufzyyzNjxoycdtppOeusszJjxoxcdNFFqy133333dXmFzmTln2O/fv065zB+/Phu+0724AEAwGZufW5r0J3Gjx+fo48+OocddliS5Cc/+UnGjh2bd7/73Rk/fnweeeSRHHXUUfne976XIUOGdO6FGzduXJYvX54JEyasdd0nn3xyTjjhhHzrW9/KsGHD8p3vfGetyx588ME56qij8u1vfzsXXHBBRowYkQsvvLDLWxK8XiklCxcuXGO81povfvGLGTlyZN7xjnd0ju+zzz65+eabO5/fcccdnc9rrZk9e3bn4Z611s7gXLFiRed5dUly7bXX5vzzz+9yTkOGDEmSPPzww5k3b1523333N/0e60rgAQAAXSql5Otf/3pmzJiRJDnjjDMyduzYztd33XXXznPnXrNgwYKMHz8+J554YufeuJkzZ3b5+5prrlntvZMmTep8vOr5du94xzs655Akr7zySnbeeed1+g4HHHBATj311HzpS19abfyFF17IyJEjs9tuu3WOvf78urvvvjsnnnhivva1ryVJbr/99uy99955+9vfniQZNmxYBg4cmIcffjhnnnlm54VYbrrppixfvjwf/OAH33But912W+e6u0vpzl2cPWH06NF1zpw5vT0N3sCe+/x9b08B3tLuvevPensKAPSyBx98sPPqlazplVdeyfLly1c7V66nLFu2LIMGDXrDZZ5//vksXrx4tcNWN1RXfxdKKffUWkd3tbw9eAAAwFtK//79Vzscsie9WdwlyVZbbbXaFTp7kousAAAANELgAQAANELgAQAAb2ju3Lm9PYWN8pOf/CSzZ8/ufL5s2bI89thjufrqq7NgwYJu/7xf/OIX3b7OdSXwAACAtfrKV76Se++9t7ensUFeffXVrFixIo8//nimT5+eZcuW5Ze//GUGDx6cPffcM3/3d3/XeW+/K664IrvttlvGjRuXD33oQ/nwhz+ccePGZa+99srpp5/e5fpnzZrVecuEVd10001veNuHTclFVgAAYDPX3VcpX9crNs+dOzdPPvlkPv/5z3fr56+vn/70p0mSj370o+v1vp/97Gf57Gc/mwEDBuSVV17JrbfemnPPPTcTJkzItGnTVlt2wIABOeOMM3LSSSflsssuy+DBg3P88cdn5syZueWWW7pc/1577ZWrr756jfHTTjstn/nMZ/KpT30qW2655XrNeWMJPAAAoEtXX311Tj311N6exgYH3h577JGjjz46o0aNyoMPPphhw4Zl9OjRueKKK/LSSy8lWXmvv7e97W0ppeTCCy/MlClT8vTTT6dfv3658sors2jRohx66KGd63zyySez5557ZpdddukcGzNmTJJkzpw5WbJkSfr3759jjz023/3ud3Pcccdt7NdfLwIPAADo0mOPPdZ5D7ZJkyblrrvuyosvvpjhw4dn6tSpKaXkuOOOyxNPPJF3vetdmTZtWqZMmZJnnnkmZ599dq688srMnz8/06dPz3bbbZdnnnkmSfKxj30sX/ziFzNx4sQ8++yzGTVqVL75zW9m0qRJWb58eWbNmpUXXngh06dPz8UXX5wbbrghycrgvPXWW9d5/v/4j/+Yq666KoMGDcrjjz+e7bffPosXL86cOXNywgknZPbs2Tn33HNz0kknpZSSs846q8s9eNOnT+9c56BBg3LQQQdl6tSpa3zeiBEjOm/fsO++++av/uqvejzwnIMHAACsk/333z933HFHtt1229x444157rnncsQRR+SOO+7IsGHDcu+99+bII4/Md7/73STJtGnTcuyxxyZJzj///Dz55JO58cYbM3v27EyePDkjR47MnXfemV/96lf5+c9/niR59NFHc+edd2bChAm57bbbcsEFF+Tss8/O2WefvV5xlyQnnnhi7r777pxxxhn5i7/4i9x111057LDDMnbs2FxyySXZZ599ctJJJyVJVqxYsU7rLKXk1ltvzZgxY9b4mT9/fudyQ4YMydKlS9drvt3BHjwAAKBLQ4YMyeLFi7PFFlskWXnOWZLsvvvumTt3bg488MDcfPPNmTZtWp599tksXbo0W265ZUaMGJE77rgjr776arbffvskyU477ZTtttsuW2yxRWqteeihh/KjH/0oM2fOzKJFizJv3rwkycSJE5MkO+64Y5YtW7ZR8//hD3+Ys88+OwsXLszy5cszZcqUHHnkkdl6663XWHbJkiW59NJLM3Xq1MybNy/9+vXLlClTsnDhwhx88MGdyy1atCiHH354rrrqqjXWMWrUqLz66qvp169fHn/88eywww4bNf8NYQ8eAADQpcMPPzzXXXdd5/PXrjh533335f3vf3+uv/76jBw5Mtdff33e8573dC43ceLEnHDCCTnmmGPWuu5ddtklp59+embOnJkvf/nL2XHHHZMkQ4cOXWPZIUOG5MUXX0yS1FrXef5jxozJ+973vkycODFHHXVUDjrooGyzzTYZOXLkGss+8MADufzyyzNjxoycdtppOeusszJjxoxcdNFFqy133333ZdSoUV1+3t13351+/VYm1jXXXJPx48ev81y7i8ADAAC6NH78+Nxyyy159tlnk6y8n9zYsWOzaNGijB8/Pvvtt1/+5V/+JWPGjMmCBQs698KNGzcuy5cvz4QJE9a67pNPPjnf//73c8ABB+Syyy57w71dBx98cK6//vrst99+mTVrVubNm7fWWxesasqUKXnve9+b9773vdl+++0zcODAXHfddfnkJz+52nK11syePTt77LFH5/PXQnLFihWd59UlybXXXptPf/rTXX7ekCFDkiQPP/xw5s2bl9133/1N59jdHKIJAACbuXW9rUF3K6Xk61//embMmJEkOeOMMzJ27NjO13fdddfOc+des2DBgowfPz4nnnhi5964mTNndvn7mmuuWe29kyZN6nx8/PHHdz5+xzve0TmHJHnllVey8847v+n8jzzyyDz33HP5/d///Vx88cUZMWJEfvazn2XEiBF56qmn8vLLLydJbr/99uy99955+9vfniQZNmxYBg4cmIcffjhnnnlmLr744iQr72+3fPnyfPCDH3zDz73tttvyta997U3ntymU9dnFuTkYPXp0nTNnTm9PgzfQ3fdpgb6mtzbiAGw+Hnzwwc6rV7KmV155JcuXL8/gwYO7bZ3Lli3LoEGD3nCZ559/PosXL17tcNRNrau/C6WUe2qto7ta3h48AADgLaV///6rHTbZHd4s7pJkq622ylZbbdWtn9vdnIMHAADQCIEHAACbobfaqVR0vw35OyDwAABgMzN48OA899xzIq8Pq7XmueeeW+/zDJ2DBwAAm5ntt98+Tz31VH7961/39lToRYMHD+68Ufy6EngAALCZGThw4DrdBgBezyGaAAAAjRB4AAAAjRB4AAAAjRB4AAAAjXCRFQCgKXvu8/e9PQV4y7v3rj/r7SmwgezBAwAAaITAAwAAaITAAwAAaITAAwAAaITAAwAAaITAAwAAaITAAwAAaITAAwAAaITAAwAAaMSbBl4pZatSyvdLKf9eSrmhlDKolPJPpZQfl1K+sMpy3ToGAADA+lmXPXifSfL1WushSeYn+YMk/WutH0/yvlLKB0opE7pzbFN8UQAAgNYNeLMFaq1/v8rT4UmOTfKNjuf/nmRMkj2SXNONY4+sOodSyilJTkmSHXfccZ2+GAAAQF+zzufglVI+nmSbJE8mmdcxvCDJtkmGdvPYamqtk2uto2uto4cPH76uUwYAAOhT1inwSinvSHJJkj9OsjjJkI6XtuhYR3ePAQAAsJ7W5SIrg5Jcm+TPa61PJLknKw+jTJKPJJm7CcYAAABYT296Dl6SE5PsmeTcUsq5Sb6V5LhSynZJDkuyb5KaZFY3jgEAALCe3nQPXq310lrrNrXWsR0/VyUZm2R2kt+ttT5fa32hO8e6+0sCAAD0BeuyB28NtdaF+e2VLzfJGAAAAOvHBU0AAAAaIfAAAAAaIfAAAAAaIfAAAAAaIfAAAAAaIfAAAAAaIfAAAAAaIfAAAAAaIfAAAAAaIfAAAAAaIfAAAAAaIfAAAAAaIfAAAAAaIfAAAAAaIfAAAAAaIfAAAAAaIfAAAAAaIfAAAAAaIfAAAAAaIfAAAAAaIfAAAAAaIfAAAAAaIfAAAAAaIfAAAAAaIfAAAAAaIfAAAAAaIfAAAAAaIfAAAAAaIfAAAAAaIfAAAAAaIfAAAAAaIfAAAAAaIfAAAAAaIfAAAAAaMaC3J0B7zrz74t6eArzF/VlvTwDe0myHoDvYFr1V2YMHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQCIEHAADQiHUKvFLKtqWUWR2P31NKeaqUMrPjZ3jH+D+VUn5cSvnCKu/b4DEAAADWz5sGXillmyRXJRnaMbRPkr+utY7t+Pl1KWVCkv611o8neV8p5QMbM7YpvigAAEDr1mUP3itJjk7yQsfzfZOcVEq5t5RyfsfY2CTXdDz+9yRjNnJsNaWUU0opc0opc37961+vw5QBAAD6njcNvFrrC7XW51cZ+n5WRtneST5eStk9K/fuzet4fUGSbTdy7PVzmFxrHV1rHT18+PB1/nIAAAB9yYANeM+Paq0vJ0kp5b4kH0iyOMmQjte3yMpw3JgxAAAA1tOGxNS/lVJ+p5Ty9iSHJPnPJPfkt4dWfiTJ3I0cAwAAYD1tyB68LyW5PcmyJJfVWh8qpfwqyaxSynZJDsvK8/TqRowBAACwntZ5D16tdWzH79trrbvWWnevtf7vjrEXsvK8vNlJfrfW+vzGjHXTdwMAAOhTNmQPXpdqrQvz26thbvQYAAAA68cFTQAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABoh8AAAABqxToFXStm2lDKr4/HAUspNpZQfllL+eFOMAQAAsP7eNPBKKdskuSrJ0I6hzya5p9a6X5IjSylbboIxAAAA1tO67MF7JcnRSV7oeD42yTUdj+9MMnoTjK2mlHJKKWVOKWXOr3/963WYMgAAQN/zpoFXa32h1vr8KkNDk8zreLwgybabYOz1c5hcax1dax09fPjwdftmAAAAfcyGXGRlcZIhHY+36FhHd48BAACwnjYkpu5JMqbj8UeSzN0EYwAAAKynARvwnquSfK+Usn+S3ZLclZWHWHbnGAAAAOtpnffg1VrHdvx+IsnBSX6YZFyt9ZXuHuu+rwcAANB3bMgevNRan85vr3y5ScYAAABYPy5oAgAA0AiBBwAA0AiBBwAA0AiBBwAA0AiBBwAA0AiBBwAA0AiBBwAA0AiBBwAA0AiBBwAA0AiBBwAA0AiB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\n",
      "text/plain": [
       "<Figure size 1080x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 不同月份的游戏销售额比较\n",
    "plt.rcParams['font.sans-serif']=['SimHei']\n",
    "plt.rcParams['axes.unicode_minus']=False\n",
    "\n",
    "df = pd.pivot_table(month_group,index=['访问月份'],values=['payment'],columns=['用户分类'],aggfunc=np.sum)\n",
    "df.plot(kind='bar',colormap='RdYlBu',stacked=True,figsize=(15,8)) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\anaconda_3.7\\lib\\site-packages\\ipykernel_launcher.py:5: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame.\n",
      "Try using .loc[row_indexer,col_indexer] = value instead\n",
      "\n",
      "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  \"\"\"\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0xbe2ae0bb08>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2QAAAIbCAYAAACE611oAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdfZhdZXkv/u9DIAUC4UWioBiwSKMSRUIOiVVikBBqiFxKE0TOQeXlYIHDkVqF0vqrwUo52v601R6jaRHUikhVUINARAlJLFgCCBY0WgUFEiBKkAZF8vKcP2YS8zLkzZn9hD2fz3XNxcyatde+53a5s797rXWvUmsNAAAAnbdD6wIAAAAGK4EMAACgEYEMAACgEYEMAACgEYEMAACgEYEMAACgkR0H+gn22WefeuCBBw700wAAAGyXbr/99p/XWkf09bsBD2QHHnhgFi5cONBPAwAAsF0qpfz0mX7nlEUAAIBGBDIAAIBGBDIAAIBGBvwaMgAAeLZasWJFHnzwwTz11FOtS+FZYOedd87++++fnXbaaYsfI5ABAMAzePDBB7P77rvnwAMPTCmldTlsx2qt+cUvfpEHH3wwL3rRi7b4cU5ZBACAZ/DUU0/lOc95jjDGZpVS8pznPGerj6YKZAAAsAnCGFtqW/YVgQwAAPid/Od//mfuvPPOJMnKlStTa21c0bOHQAYAAPTpQx/6UH7zm9+s/flTn/pUZs+evdF6K1euzMknn5wnnngi06dPz6RJk9Z+7b777utt4yUveUkmTpy43te+++6bu+++e71tXnjhhVm4cGFWr16dm2++OT/+8Y/zz//8zwP3xzYikAEAwLPQ29/+9vzFX/xFkmTGjBmZMWNGvz/HTjvtlAsvvDCrVq1Kkhx//PG5/vrrk/QMsVi9enWSnpB18cUXZ7fddsvVV1+db37zm7nxxhtz44035qCDDsrQoUPXbnPffffN3Llz1/v6oz/6owwbNmztOk899VQWLFiQww47LLfcckv+5V/+JSNHjsxVV13V739jawIZAAA8S/3TP/3TgI7kP++883LSSSfloosuylFHHZWDDz44P/jBDzJp0qQcffTR+dKXvpSHH344f/iHf5gTTjghO+zQd7xY99qqJ554YqMjZNdff32GDBmydp1PfvKTee1rX5shQ4Zk5syZ+d//+39np512yqhRo/Jv//ZvA/b3tmDsPQAAPEuNHj06n/vc55Ikv/nNb/KWt7wlixcvzv7775/LLrssf/M3f5MVK1Zk/vz5eeKJJ3L99ddn+PDheetb35pHH300L3/5y/N//+//7XPb//qv/5rPf/7zOf744/P+978/STJx4sTceOON6633+OOPZ+jQoXnwwQczZsyYvOxlL8vq1avz9NNP59Zbb91ou3vvvfdG23j729++9vsHHnggf/d3f5fTTz89N910U3bYYYe8/OUvT9JzJPCEE07I7Nmzs/vuu29z37YnjpABAMCz1DnnnJNPfvKTSXqOlo0ePTo333xzDj744HzqU59K0jNwY968eTnhhBPyrW99K7Nmzcro0aMzb968LFmyZKNrt9aYPn16zjzzzPzkJz9J0nOT7LvuuisTJ07M+PHjc8opp6y3/u/93u/lda97XebOnZs5c+asd5riun71q19t8m+aP39+3vOe92TZsmW58MIL8+STT2avvfbKxIkTc8QRR2SPPfbIFVdcsVV92p45QgYAAM9S++67b17ykpdk7ty5OfHEEzNu3Lgkyfjx43Pddddlr732ylvf+tYkyciRI/P0009n0aJF+bd/+7fMnTs3jz/+eB566KG84hWveMbnWHMa4rJly3LsscfmyiuvzPe+971cfvnl66235jqzNZ5p0uLPfvazTJo0ab1l995779pr4E4++eQsWLAgjz32WL71rW9l6NChOf744/P1r389l1xyScaOHZtjjjlmi3u0vRPIAADgWexP//RPM2bMmNxzzz15/vOfn0mTJuXWW2/NIYccksWLF683LCNJRo0alSOOOCKnnnpqZs+enZEjR25y+0899VQuuuiiHHLIITnssMOS9ISzvffee731dthhhzz88MOZOHFikp7TKTd033335bDDDsvXvva19Zave8riunbdddfcdttta7f1m9/8Jrvuuusm6322ccoiAAA8ix122GF57WtfmzPOOCP33HNPJkyYkB/96EfPGHL+5//8n7nuuusyYcKEfOITn8gLX/jCPPTQQznvvPM2WvfnP/95PvOZz+S1r31tPvjBD6492rZ48eKNAtlzn/vc9SYnzpw5c6PtzZo1K3/8x3+80fKVK1euN/hj9erVa69DmzFjRk499dQkydKlS7PHHntscW+eDRwhAwCAZ6F1TxmcO3dun+usOwp/3YC24fj4YcOG5UUvetFGjx85cmTmz5+fz3zmM/nTP/3T7Lfffnnf+96Xa6+9NldeeWWSbHLK42mnnbb2CNx9992XOXPmrB0QkvQc8Xr1q1+dpOf0y3WXP/300/mzP/uznHzyyXnpS1+at7/97Vm2bFn+4A/+4Bmf79moDPRdtMeOHVsXLlw4oM8BAAAD4fvf/35e+tKXti5jwK1atSorVqzIzjvv3K/brbWud+RrxYoV2WmnndZbZ/Xq1c84Ln/Dxz8b9LXPlFJur7WO7Wv9Z/0RsivKqAHb9sl10YBtGwAAthdDhgxZ7z5g/WXDMLVhGEvyjGGsr8d3I9eQAQAANCKQAQAANCKQAQDAs8T999/fuoTtyuOPP57Fixd37PnW3CS7Pz3rryEDAIDB4IMf/GAOPvjgHHjgga1L6bglS5bknnvuybhx47L77ruvXf6Rj3wkjz76aJ8j9rfFXnvtlUMPPXS9Zd/97nfzs5/9LMOHD8/MmTPzhje8IRMmTOiX50sEMgAA2GL9PVBuS4fI3X///XnggQdywQUX9Ovzb855552Xv//7v99o+YwZMzJx4sS1N4HenF/+8pc56aSTsmrVqgwbNixf+MIXMnTo0Jx++um59957c9xxx+W9731vkuSRRx7JtGnTMn/+/CTJD3/4w5xxxhk5+uijc/755+fWW2/N0KFDs2jRonz0ox/NmDFjMnXq1CxZsiT77bdfVq5cmT333DNXXnllVqxYkRNOOCGPPfZYTj/99Jx22mlra3rDG96Qv/7rv84rX/nKtcsOPfTQjW4hMHHixLU3177kkkty0kkn5TWvec0mh5FsDYEMAAC2c5/97GdzzjnndPx5+wpj2+Jzn/tc3vWud+WYY47JWWedleuvvz4rV67MqlWrcsstt+S0007Lj370o+yzzz5529velieffHLtY+++++5cdtllOeigg/K9730v9913X/bbb7+ceOKJmTlzZk466aQkyfjx4zN79uz1nvdjH/tYDj/88MyYMSNTpkzJ9OnTs/vuu+dzn/tcDjrooPXCWNIT/jYMmd/97nfXTqDccccdc/TRR+fb3/52jjzyyH7pjWvIAABgO/fjH/947b2tZsyYsfYozuWXX57LL788v/71rzN16tRMmDAhb3rTm7Jy5cr86le/yrRp0zJhwoT1wtzEiRPznve8J8cee+xmn3fdcLJs2bJMmjQpRx111DPeiPqZnH322TnmmGOSJEuXLs1zn/vczJ07NyeeeGKSZPLkyVmwYEGGDBmSL3zhCxk+fPjax06bNi0HHHBArr322ixbtiwvfvGLc9999+WUU07J1772tUydOjVTp07NokWLMmXKlEyePDlf/OIXk2S955gwYUIWLlyYxx57LH/2Z3+WvfbaKzfddNN6db7sZS/L3Llz1/vaMLSNHz8+d95551b9/ZsikAEAwLPcvffemx122CHz5s3LqaeemuXLl2fWrFkZPXp05s2blyVLluTuu+9Oktx666151atelRtuuGGrnmPWrFmZOnVqbrrppj7vJ7Ylbrnllixbtizjx4/Pk08+mRe84AVJkr333juPPPJIhg8fnj322GOjxy1fvjxXXXVVDjjggJRScuihh+bd7353HnjggcyePTuzZ8/OqFGj8vWvfz1z5szJtGnTkqTP5/jIRz6S6dOn5x3veEc+85nP5Ktf/WqSnptQP/XUU5v9G3bZZZf8+te/3qa/vy8CGQAAbOd22WWXLF++fKPla4LBmDFjMnr06EyePDk33HBDdt111yxatChXX311Jk6cmJ/85Cd56KGHkiSjR4/OCSecsNU13HfffWsHXowdO3arH//YY4/l3HPPzac+9akkyW677ba2/uXLl2f16tXP+Ng999wzn/70p7NixYrcdtttWblyZVavXv2MN45evXp1Vq9e3edz3HnnnTnnnHOy77775sQTT1x7tO+JJ57ID37wg0yaNGm9r7vuumujPrzwhS/c6r//mQhkAACwnZsyZUq+9KUvJUmGDh2apUuXJkmuv/76JMldd92VV7/61ZkzZ06WLVuW+fPnZ9SoUTnvvPMyd+7cfOADH8jIkSOT9AShbTFy5Mjcc889SXquq9oaTz/9dKZPn55LLrkkBxxwQJLk8MMPz4IFC9bW/0zTI88666zMmzcvSc+Y+z333DMf+MAHMmXKlOy+++7rnbK45vvjjjsus2fP7vM5XvziF68dX79w4cK19dxxxx15y1vekhtvvHG9rw2nLl5zzTWZPHnyVv39m2KoBwAAbOemTp2aN7/5zXn961+f448/PmeffXa++c1v5jnPeU6S5MADD8wFF1yQiy++ODvvvHPGjh2b8ePH59RTT81ll12W4cOH54orrvidajjzzDMzffr0fPGLX8yKFSuSJA899FD+9m//drPDPy699NLccccdufjii3PxxRfnrLPOyhvf+MYceeSRWbx4ca677rrceuutfT72/PPPzymnnJJSSiZPnpxRo0ZlxowZG603bty4jYZ6HHrooZkyZUrmz5+fe++9N+PGjcuBBx6YM844IxdffHF23XXXfPnLX07Sc0rmO97xjo22u3LlyrXfL1iwICNGjMg+++yzyb93a5Raa79trC9jx46tCxcuHLDt9/fo0XVt6RhSAAC60/e///21wzRae/DBBzNv3rycfPLJrUtZa9WqVfnHf/zHvPOd79ymxy9btizf+MY3MmHChOy7776/Uy2HHHLI2iN461q8eHEWLFiQY489ts/r05Kea9ve9773Zc6cOWuXLVmyJEcffXRGjhy59kjkhz/84Zx77rmbvIaur32mlHJ7rbXP8zwFsk0QyAAABrftKZANlA3HvO+xxx75yle+skWPXbVqVVasWJGdd955ACrrrBUrVmwUtFavXr3V9xvb2kDmlEUAABjEtnaE/bqGDBmy9h5dz3Z9HfXqr5s/b4qhHgAAAI0IZAAAAI0IZAAAAI0IZAAA8Cxx//33ty5hu/L4449n8eLFHXu+Nfcv609bNNSjlLJ3ksOT3Flr/Xm/VwEAAGzSBz/4wRx88MHPeAPlbrZkyZLcc889GTduXHbfffe1yz/ykY/k0UcfzcyZM/vlefbaa6+NbgT93e9+Nz/72c8yfPjwzJw5M294wxsyYcKEfnm+ZAsCWSllrySzk1yb5MOllNcluT3Jmnh4bq31e/1WEQAAbKfGjPt4v27vju+cvUXr3X///XnggQdywQUX9Ovzb855553X502fZ8yYkYkTJ240Mv+Z/PKXv8xJJ52UVatWZdiwYfnCF76QoUOH5vTTT8+9996b4447Lu9973uTJI888kimTZuW+fPnJ0l++MMf5owzzsjRRx+d888/P7feemuGDh2aRYsW5aMf/WjGjBmTqVOnZsmSJdlvv/2ycuXK7LnnnrnyyiuzYsWKnHDCCXnsscdy+umn57TTTsv73ve+3HzzzUmShx9+OG9729ty4YUXJum5kfSGUycnTpyYYcOGJUkuueSSnHTSSXnNa17TbxMYt+QI2SuSvKvWemtvODstyedrrZ3dGwAAYJD67Gc/m3POOafjz9tXGNsWn/vc5/Kud70rxxxzTM4666xcf/31WblyZVatWpVbbrklp512Wn70ox9ln332ydve9rY8+eSTax97991357LLLstBBx2U733ve7nvvvuy33775cQTT8zMmTNz0kknJUnGjx+f2bNnr/e8H/vYx3L44YdnxowZmTJlSqZPn56LLrpo7e+nTZuWt771rWt//uEPf7hRyPzud7+7drT/jjvumKOPPjrf/va3c+SRR/ZLbzYb62qtN/eGsQlJjkjy6yRTSyn/Xkq5tJTiXmYAADCAfvzjH6+92fCMGTPWHsW5/PLLc/nll+fXv/51pk6dmgkTJuRNb3pTVq5cmV/96leZNm1aJkyYsF6YmzhxYt7znvfk2GOP3ezzrhtOli1blkmTJuWoo47a6nuXnX322TnmmGOSJEuXLs1zn/vczJ07NyeeeGKSZPLkyVmwYEGGDBmSL3zhCxk+fPjax06bNi0HHHBArr322ixbtiwvfvGLc9999+WUU07J1772tUydOjVTp07NokWLMmXKlEyePDlf/OIXk2S955gwYUIWLly4dru33XZb9t9//7zgBS9Yu+xlL3tZ5s6du97XK1/5yvX+lvHjx+fOO+/cqr9/U7boOFsppSR5c5JlSe5MMqnWekSSnZJM6WP9M0spC0spC5cuXdpvxQIAABu79957s8MOO2TevHk59dRTs3z58syaNSujR4/OvHnzsmTJktx9991JkltvvTWvetWrcsMNN2zVc8yaNStTp07NTTfd1OdNlLfELbfckmXLlmX8+PF58skn14ahvffeO4888kiGDx+ePfbYY6PHLV++PFdddVUOOOCAlFJy6KGH5t3vfnceeOCBzJ49O7Nnz86oUaPy9a9/PXPmzMm0adOSpM/nWOMf/uEfcu655679udaap556arN/wy677JJf//rX2/T392WLAlntcU6Su5M8v9a6pPdXC5Mc3Mf6s2qtY2utY0eMGNFvxQIAwGC0yy67ZPny5RstXxMMxowZk9GjR2fy5Mm54YYbsuuuu2bRokW5+uqrM3HixPzkJz/JQw89lCQZPXp0TjjhhK2u4b777ls78GLs2LFb/fjHHnss5557bj71qU8lSXbbbbe19S9fvjyrV69+xsfuueee+fSnP50VK1bktttuy8qVK7N69er0HDfa2OrVq7N69epnfI7HH388jz76aA466KC1j3niiSfygx/8IJMmTVrv66677tqoDy984Qu3+u9/JpsNZKWUC0opa06s3DPJJ0oph5ZShiR5Y5K7nvnRAADA72rKlCn50pe+lCQZOnRo1pyFdv311ydJ7rrrrrz61a/OnDlzsmzZssyfPz+jRo3Keeedl7lz5+YDH/hARo4cmaQnCG2LkSNH5p577knSc13V1nj66aczffr0XHLJJTnggAOSJIcffngWLFiwtv5nmh551llnZd68eUl6gtSee+6ZD3zgA5kyZUp233339U5ZXPP9cccdl9mzZz/jc3zlK1/JlCnrn+h3xx135C1veUtuvPHG9b42nLp4zTXXZPLkyVv192/Kllz/NSvJVaWUM5L8R5IJST6XpCT5aq31xn6rBgAA2MjUqVPz5je/Oa9//etz/PHH5+yzz843v/nNPOc5z0mSHHjggbngggty8cUXZ+edd87YsWMzfvz4nHrqqbnssssyfPjwXHHFFb9TDWeeeWamT5+eL37xi1mxYkWS5KGHHsrf/u3fbnb4x6WXXpo77rgjF198cS6++OKcddZZeeMb35gjjzwyixcvznXXXZdbb721z8eef/75OeWUU1JKyeTJkzNq1KjMmDFjo/XGjRu30VCPQw89NFOmTMn8+fNz7733Zty4cUmSG264Ie9+97vXW3fWrFl5xzvesdF2V65cufb7BQsWZMSIEdlnn302+fdujVJr7beN9WXs2LF13Yvn+tsVZdSAbfvkumjAtg0AwPbv+9///tphGq09+OCDmTdvXk4++eTWpay1atWq/OM//mPe+c53btPjly1blm984xuZMGFC9t1339+plkMOOWTtEbx1LV68OAsWLMixxx7b5/VpSc+1be973/syZ86ctcuWLFmSo48+OiNHjlx7JPLDH/5wzj333E1eQ9fXPlNKub3W2ud5ngLZJghkAACD2/YUyAbKhmPe99hjj3zlK1/ZoseuWrUqK1asyM477zwAlXXWihUrNgpaq1ev3ur7jW1tIDOyHgAABrGtHWG/riFDhqy9R9ezXV9Hvfrr5s+bMvDPAAAAQJ8EMgAA2ISBvsSH7rEt+4pABgAAz2DnnXfOL37xC6GMzaq15he/+MVWX0/nGjIAAHgG+++/fx588MG19/2CTdl5552z//77b9VjBLJNGDPu4wO27Tu+c/aAbRsAgP6x00475UUvelHrMuhiTlkEAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoZIsCWSll71LKMaWUfQa6IAAAgMFis4GslLJXktlJjkhyUyllRCnl0lLKLaWU9w54hQAAAF1qxy1Y5xVJ3lVrvbU3nL0uyZBa66tKKZ8qpRxca/3RwJYJAADQfTYbyGqtNydJKWVCeo6S7Z3kqt5fz0nymiQCGQAAwFba0mvISpI3J1mWpCZ5qPdXjyV5Xh/rn1lKWVhKWbh06dL+qhUAAKCrbFEgqz3OSXJ3kj9Mskvvr3braxu11lm11rG11rEjRozot2IBAAC6yZYM9biglPLW3h/3TPJ/0nOaYpIcmuT+gSkNAACgu23JUI9ZSa4qpZyR5D+SXJNkXinl+Ulen2T8ANYHAADQtbZkqMeyJMesu6yUMrF32Ydqrb8cmNIAAAC625YcIdtIb0i7arMrAgAA8Iy2aKgHAAAA/U8gAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaGTHza1QStkjyZVJhiR5Msmbk/xnkp/0rnJurfV7A1YhAABAl9qSI2T/PcmHa62Tkzyc5M+TfL7WOrH3SxgDAADYBpsNZLXWj9dav9H744gkK5NMLaX8eynl0lLKZo+yAQAAsLEtvoaslPKqJHsl+UaSSbXWI5LslGRKH+ueWUpZWEpZuHTp0n4rFgAAoJtsUSArpeyd5GNJTktyd611Se+vFiY5eMP1a62zaq1ja61jR4wY0W/FAgAAdJPNBrJSytAk/5rkwlrrT5N8tpRyaCllSJI3JrlrgGsEAADoSltyhOz0JGOS/GUpZW6Se5J8Nsl3k9xSa71x4MoDAADoXpsdyFFrnZlk5gaLLxqYcgAAAAYPN4YGAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoRCADAABoZLOBrJSyRynlulLKnFLK1aWUoaWUS0spt5RS3tuJIgEAALrRlhwh++9JPlxrnZzk4SQnJRlSa31Vkt8vpRw8kAUCAAB0qx03t0Kt9ePr/Dgiyf9I8ve9P89J8pokP+r/0gAAALrbFl9DVkp5VZK9kjyQ5KHexY8leV4f655ZSllYSlm4dOnSfikUAACg22xRICul7J3kY0lOS7I8yS69v9qtr23UWmfVWsfWWseOGDGiv2oFAADoKlsy1GNokn9NcmGt9adJbk/PaYpJcmiS+wesOgAAgC62JUfITk8yJslfllLmJilJTimlfDjJiUmuHbjyAAAAuteWDPWYmWTmustKKV9NckySD9VafzlAtQEAAHS1zQayvtRalyW5qp9rAQAAGFS2eMoiAAAA/UsgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAAaEQgAwAA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\n",
      "text/plain": [
       "<Figure size 1080x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 不同月份中游戏新用户的消费额比较\n",
    "df2 = month_group[month_group['用户分类'] == '新用户']\n",
    "# df2.describe()\n",
    "\n",
    "df2['消费额分类'] = pd.cut(df2['payment'],[0,1000,2000,3000,4000,5000,6000,7000,8000,9000,10000,11000,12000,13000])\n",
    "pivot2 = pd.pivot_table(df2,index=['消费额分类'],values=['user_id'],columns=['访问月份'],aggfunc='count')\n",
    "pivot2.plot(kind='bar',colormap='RdYlBu',figsize=(15,8)) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "hide_input": false,
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  },
  "nbTranslate": {
   "displayLangs": [
    "*"
   ],
   "hotkey": "alt-t",
   "langInMainMenu": true,
   "sourceLang": "en",
   "targetLang": "fr",
   "useGoogleTranslate": true
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  },
  "varInspector": {
   "cols": {
    "lenName": 16,
    "lenType": 16,
    "lenVar": 40
   },
   "kernels_config": {
    "python": {
     "delete_cmd_postfix": "",
     "delete_cmd_prefix": "del ",
     "library": "var_list.py",
     "varRefreshCmd": "print(var_dic_list())"
    },
    "r": {
     "delete_cmd_postfix": ") ",
     "delete_cmd_prefix": "rm(",
     "library": "var_list.r",
     "varRefreshCmd": "cat(var_dic_list()) "
    }
   },
   "types_to_exclude": [
    "module",
    "function",
    "builtin_function_or_method",
    "instance",
    "_Feature"
   ],
   "window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
